Peer-to-peer networking is the utilization of the relatively powerful computers (personal computers) that exist at the edge of a network or the Internet for more than just client-based computing tasks. The modern PC has a very fast processor, vast memory, and a large hard disk, none of which are being fully utilized when performing common computing tasks such as e-mail and Web browsing. The modern PC can easily act as both a client and server (a peer) for many types of applications.
The typical computing model for many applications is a client/server model. A server computer typically has vast resources and responds to requests for resources and data from client computers. Client computers initiate requests for resources or data from server computers. A good example of the client/server model of computing is Web browsing. Web servers on the Internet are typically high-end dedicated server computers with very fast processors (or multiple processors) and huge hard disk arrays. The Web server stores all of the content associated with a Web site (HTML files, graphics, audio and video files, etc.) and listens for incoming requests to view the information on a particular Web page. When a page is requested, the Web server sends the page and its associated files to the requesting client.
The protocol used to send messages between peers for name resolution and peer discovery is Peer Name Resolution Protocol (PNRP). PNRP uses multiple clouds, in which a cloud is a grouping of computers that use addresses of a specific scope. A scope is an area of the network over which the address is unique. PNRP clouds are based on the address scopes for IPv6 addresses.
A peer name is an endpoint for communication, which can be a computer, a user, a group, a service, or anything else that is desired to resolve to an IPv6 address, protocol, and port number. PNRP IDs are 256 bits long and are composed of the following:
The high-order 128 bits, known as the peer-to-peer ID, are a hash of a peer name assigned to the endpoint.
The low-order 128 bits are used for the service location, which is a generated number that uniquely identifies different instances of the same peer to peer ID in the same cloud.
The 256-bit combination of peer to peer ID and service location allows multiple PNRP IDs to be registered from a single computer.
The ability to translate names from a server based environment to a peer to peer based environment will become even more important as peer to peer computing increases in use.